home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
gt_power
/
mmp230.zip
/
MM_PRINT.DOC
next >
Wrap
Text File
|
1990-11-27
|
11KB
|
317 lines
MM_PRINT rev 2.30 beta
----------------------
This is issued mainly to correct a share mode error in 2.28. I have also
included some enhancements for those that would like to experiment
with the MMENU feature of GT16.
This is purely an experiment - I don't anticipate it being exceptionally
useful. Too many limitations. But if it works, it will display messages
in a manner more easily recognised by 7 bit callers.
For those that want to try it :
a) make sure mm_print.tbl is in the MM subdirectory of your GTPATH
b) put read7.bat in your GTPATH directory
c) put a MMENU comand in your sysop.bbs :
"MMENU=[R7]read7"
The expected limitations:
a) will only work on COM1 and COM2, at baud rates supported by DOS bios
(ie, speeds up to 9600).
b) XON/XOFF not supported.
c) May cough and splutter due to comms errors. For example, some V21/V23
modems seem to work in half duplex causing problems at low speed.
d) Will not display private messages, even if addressed to the caller
e) Will not update the caller's current message pointer.
f) It works best if you are not overlaying doors - but there seems to be
no provision in MMENU for disabling overlay without doing so for ALL
doors.
Note: The program will, by itself, read and write to the appropriate com
port as well as the PC console. Do NOT use CTTY with it!
ps: Despite the statement below, the latest edition of MMR is still
2.27, which may have a problem locating mm_print.exe. You may
need to execute MMR from the directory containing mm_print.exe
until MMR is revised, and the note about deleting spool files
still applies.
MM_PRINT rev 2.28 beta
----------------------
MM_PRINT rev 2.28 is intended to be used with MMR 2.28. It will
work with any revision from 2.00 onwards, but if used with the Q option
(to spool via the DOS print spooler) you will need to periodically delete
the spool files, eg by
del %gtpath\mm\sp_*.*
which can conveniently go in your autoexec.bat
It is called directly from MMR using Printer Control parameters configured
in MMR's configuration screen.
This version allows output either to :
a) a printer (default is DOS device PRN)
b) a file (default is MM_PRINT.OUT in the MM subdirectory of the
GTPATH).
c) the DOS print spooler (which must be loaded before executing MMR,
perhaps by putting PRINT in your autoexec.bat).
d) printing can be performed by calling a background task in desqview.
In methods a and b, the file name or DOS device can optionally be specified
or corrected at run time.
New features :
2.28 able to output via the DOS print spooler.
2.18: file output defaults to the MM subdirectory rather
than the current directory.
2.15: the addition of the parameters & and D which are for
running MM_PRINT as a separate task under Desqview.
Installation
------------
MM_PRINT.EXE may be installed anywhere in the DOS path. Before doing
so, you should ensure there is not already a copy of MM_PRINT anywhere
on your system, since that will cause great confusion at some time in
the future.
You may optionally install the sample MM_PRINT.TBL (described later). If
used, this *must* be installed in the MM subdirectory of your GTPATH.
Parameters
----------
The parameters are configured in the Printer Control entry in the MMR
configuration screen. That string should contain one or more of the
entries described here, with no intervening spaces.
The options (in any order) are:
C Confirm printer is ready before proceeding.
D Run as a separate task in Desqview. The window starts in the
foreground (maybe you need to confirm printer is ready).
You need LOAD.EXE as described in MMR-218.REV for this.
& Run as a separate task in Desqview. The window starts in the
background.
You need LOAD.EXE as described in MMR-218.REV for this.
F Append the printout to a File (default name is MM_PRINT.OUT in
current directory.
J Append the printout to your Jotter.
L Alternative linefeed format. Probably not needed.
P Send output to device PRN.
Q Place the file in the queue of the DOS print spooler.
R Edit name of output device at runtime (specify also P or F for
default destination).
T Use a translate table (MM_PRINT.TBL in MM subdirectory of GTPATH).
7 Use the translate table. Then if any 8 bit characters (or
values below hex 20) remain, represent them by their hex values.
If no translation is required, an empty translation table must
be used.
W If a translated line exceeds 80 characters, word-wrap the line.
If no translation is required, an empty translation table must
be used and a translation flag (either T or 7) is also required.
Examples:
PC Output to printer, confirm before starting
FRW7 Output to file, ask name at runtime, use translate
table, convert remaining 8 bit characters, wrap lines
exceeding 80 characters.
QT Output via the DOS print spooler, using translate table.
Output translation
------------------
The translation table is optional. Translation will be omitted if the T
is not included in the printer control string, or if the translation
table is not found in the MM subdirectory of GTPATH.
You can make your own translate table if you have special requirements.
Each translate entry consists of one line, which can either :
a) translate characters on a one-for-one basis, eg to substitute
a pound sign wherever a hash appears.
b) translate a text string of arbitrary length into a byte sequence
of arbitrary length, or suppress it altogether.
c) eliminate any line containing the specified string.
d) qualify any particular translation so that it only occurs if the
specified string is at the beginning or end of a line.
The translation process does have some inherent known limitations, as
described below.
The example MM_PRINT.TBL translation table enclosed will perform a
similar translation to the 7 option in MM_PRINT 1.64, ie it will convert
the standard box graphics characters to +|- representation and will
express several other 8 bit characters in a 7-bit readable form.
Translation table format
------------------------
The translation table consists of one or more lines, each describing
a translation entry.
Each translation entry consists of 3 parts:
┌─────────────────── Type of translation
│ ┌────────────── Search string
│ │ ┌────── Replace string
┴ ─┴─ ─┴─
* [┌] [+]
The TYPE must appear as the *first* character on the line. Spaces or
tabs may optionally appear before or between the two strings to improve
readability.
a) Type of translation:
< translate only if on beginning of a line
* translate anywhere
> translate only if on end of a line
; comment - performs no action.
b) String to search for :
The search string is enclosed in square brackets. It must not
be an empty string.
Characters which your editor cannot conveniently handle can be
represented in $nn format, ie a $ sign followed by TWO hex
digits. Following a $ with anything else is likely to lead to
misoperation.
Special considerations apply to :
SPACES: if you include them WITHIN a string, they
are considered significant.
ALPHAs are matched on a case-insensitive basis.
$ if you need to search for a string
*containing* a $ character, you must use
its $24 representation.
] must similarly be represented as $5D.
c) Replacement string.
The replacement string will normally obey the same rules as
the search string, but can also be :
empty, ie just [], if you want to *delete* any string
matching the one defined in b)
missing, ie without even the brackets, if you want to delete
any *line* which containings a string matching the one
defined in b).
Examples:
* [│] [|]
;
; prints | wherever a │ appears in the message.
<[.]
;
; deletes any lines beginning with a dot command, but not lines
containing the . elsewhere.
* [$9c] [(pounds)]
;
; if your printer doesn't have a pound sign, print it as a word.
*[$9c][#]
;
; if your printer prints a pound when you send it a hash
* [dog] [cat and dog]
;
; a general translation to illustrate the principle
* [<red>] [$1bQ]
;
; a more useful example, if your messages contain predefined
; control codes which can be represented in some way on your
; printer. In this case <red> in a message would generate
; ESCape-Q (which would presumably be chosen to do something useful
; on your printer).
Translations are performed in "top down" order, ie the first line is
performed first. In most cases this will not be important, but should
be taken into account if you wish to either cause or prevent recursive
translation from occurring.
Limitations
-----------
MM_PRINT will process a maximum of 100 translation entries (though it
may not drive a fast printer at full speed with that many translations).
The search and replace strings can each contain up to 40 characters.
If the W option is used, MM_PRINT will attempt to word wrap lines which
exceed 80 characters after translation. This may cause unexpected
results where the result contains paper movement characters.
For example, you could cause a printer to print slashed zeros (assuming
it doesn't already do so) by :
* [0] [0$08/]
ie, replace zero with zero backspace slash. But MMR will then
inadvertantly limit the length of that line to 78 characters, since it
will not know of the unexpected paper movement. If you had a lot of
zeros on the same line, the results could be less useful.